// 文件名: src/api/types/admin.ts
// 块功能: 管理员与角色模块类型
// 描述: 定义管理员(Admin)和角色(Role)相关的请求和响应类型。

// --- 管理员类型 ---
/**
 * 管理员基础信息
 */
export interface AdminUser {
  id: number
  username: string
  role: { id: number; name: string }
  is_superuser: boolean
  is_active: boolean
  created_at: string
}

/**
 * 创建管理员的数据模型
 */
export interface AdminUserCreate {
  username: string
  password?: string // 创建时密码是必须的
  role_id: number
  is_active?: boolean
}

/**
 * 更新管理员的数据模型
 */
export interface AdminUserUpdate {
  username?: string
  password?: string // 更新时密码是可选的
  role_id?: number
  is_active?: boolean
}

// --- 角色类型 ---
/**
 * 角色信息
 */
export interface AdminRole {
  id: number
  name: string
  description: string | null
}

/**
 * 创建角色的数据模型
 */
export type AdminRoleCreate = Omit<AdminRole, 'id'>

/**
 * 更新角色的数据模型
 */
export type AdminRoleUpdate = Partial<AdminRoleCreate>
